The application relates to the prognosis of the reliability of a technical system having a processor on which a program runs.
Technical systems are offering an ever greater variety of functions. Often the associated functions can only be realized if the processor on which the program runs is used in a technical system. For instance, in the case of a video recorder or a mobile phone, the processor and the associated program have become indispensable parts of these technical systems.
The more the functions of a technical system are no longer realized using purely mechanical for example, but rather require the use of the aforementioned processor and program, the more decisive a role the reliability of the program plays for the reliability of the technical system as a whole.
Errors in the program usually lead to a partial or complete failure of the technical system. Such failures can be manifested in the form of malfunctions, or else in the non-availability of certain technical functions of the technical system. Failures can also cause damage to the mechanical or electronic elements of the technical system. Finally, such failures can often result in serious collateral damage, such as the leaking of cooling fluid from a refrigerator or a reactor vessel for example.
It is therefore vital for the person skilled in the art to be able to make predictions already during the development of the technical system and the associated program about the reliability or about the effort required to achieve a given level of reliability.
From Lawrence, Dennis: “Software Reliability and Safety in Nuclear Reactor Protection Systems”, US Nuclear Regulatory Commission, 1993, pages 101 to 105, models, in particular the Musa model, are known with which it is possible to determine the increase in reliability of the program in a test period.
One disadvantage of these models is that they can only be used at a relatively late stage, namely only once the program and the technical system are already in the test phase. Within a division of the development and deployment of a program into analysis phase, design phase, implementation phase, test phase and field phase, the test phase is at the end of the development period and second to last in the overall chain.
There is however a need to produce reliability prognoses for technical systems already much earlier in the development of the respective program.
Methods for estimating cost and effort are known from the field of systems analysis of technical systems. Thus, for example from Balzert, Helmut: “Lehrbuch der Software-Technik”, 2nd edition, Spektrum Akademischer Verlag, Heidelberg, 2000, pages 83 to 93, the function point method is known in which the effort for producing a program is quantified using function points. It is possible to estimate the implementation effort from the function points by assigning an average number of programming lines (lines of code) to each function point.
In the field of quality assurance of technical systems it is known to determine the number of expected errors from the number of lines of code. See for example Liggesmeyer, Peter: “Qualitätssicherung softwareintensiver technischer Systeme”, Spektrum Akademischer Verlag, Heidelberg, 2000, page 192.
Described in WO00/29993A2 is a method in which models which include as variables values that describe a technical system are calculated by statistical methods. Using these models it is possible to make prognoses about the time or quality of completion of the technical system. The method classifies the models with respect to their prediction quality and, using a holdout method, calculates a model that then only contains significant values that have a decisive influence on the realization of the technical system. In particular regression or discrimination analytical methods are used here as statistical methods for calculating the models (see for example Richard A. Johnson, Dean W. Wichern, “Applied Multivariate Statistical Analysis”, Prentice Hall, 1982).
One possible technical object of the invention is to enable the technical expert to make an early and reliable prognosis of the reliability of a technical system he is to develop, in which the technical functions are executed by a program running on a processor.